获取指针 指向的内存大小 | 您所在的位置:网站首页 › c 指针数组 长度怎么确定 › 获取指针 指向的内存大小 |
_msize
Returns the size of a memory block allocated in the heap. RoutineRequired Header_msize size_t _msize( void *memblock ); Parameters memblock Pointer to memory block LibrariesAll versions of the C run-time libraries. Return Values_msize returns the size (in bytes) as an unsigned integer. RemarksThe _msize function returns the size, in bytes, of the memory block allocated by a call to malloc, or realloc. When the application is linked with a debug version of the C run-time libraries, _msize resolves to _msize_dbg. For more information about how the heap is managed during the debugging process, see Using C Run-Time Library Debugging Support. Example /* REALLOC.C: This program allocates a block of memory for * buffer and then uses _msize to display the size of that * block. Next, it uses realloc to expand the amount of * memory used by buffer and then calls _msize again to * display the new amount of memory allocated to buffer. */ #include #include #include void main( void ) { long *buffer; size_t size; if( (buffer = (long *)malloc( 1000 * sizeof( long ) )) == NULL ) exit( 1 ); size = _msize( buffer ); printf( "Size of block after malloc of 1000 longs: %u\n", size ); /* Reallocate and show new size: */ if( (buffer = realloc( buffer, size + (1000 * sizeof( long )) )) == NULL ) exit( 1 ); size = _msize( buffer ); printf( "Size of block after realloc of 1000 more longs: %u\n", size ); free( buffer ); exit( 0 ); } Output Size of block after malloc of 1000 longs: 4000 Size of block after realloc of 1000 more longs: 8000 See Alsomalloc, realloc |
CopyRight 2018-2019 实验室设备网 版权所有 |